#include "cmd.hpp"

// // char* _toHex(int key)
// char* _toHex(const char* key)//如果我传入的是字符串，那么c++中已经弃用了从字符串常量到char*
// {
//     char buffer[64];
//     // snprintf(buffer,sizeof(buffer),"%d",key);
//     snprintf(buffer,sizeof(buffer),"%s",key);
//     return buffer;
// }

int main()
{
    // cout<<_toHex(10)<<endl;   
    // cout<<_toHex("abc")<<endl;   
    int key = getKey();
    cout<<"key: "<<toHex(key)<<endl;
    //关联共享内存
    int shmid = getShm(key,size);
    cout<<"shmid: "<<toHex(shmid)<<endl;
    void *address = shmat(shmid, nullptr, 0);
    sleep(15);
    // //进行通信写入数据



    //去关联
    shmdt(address); 
    
    //扩展内容:
// 1. client写完了，才通知让server读取。刚开始，一定先让client运行一个管道
// 2．命名管道带进来
// 3. client写完了，才通知让server读取.读取完了，才让client进行写入两个管道

//while 共享内存写完数据，发出信号给命名管道
//sever端管道读取到数据，则开始读取共享内存中的数据
//sever读取完成，则写入数据给命名管道，client接受到再进行下一步的写入数据到共享内存


    return 0;
}